LoveRead.info » Книги » Разная литература » Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин

Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин

Книгу Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

222 0 11:53, 18-01-2023

Книга Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин читать онлайн бесплатно без регистрации

Эта книга для тех, кто уже знаком с языком программирования Java и хотел бы научиться разрабатывать настольные приложения Java с графическим интерфейсом пользователя.С этой книгой Вы познакомитесь с такими Java библиотеками графического интерфейса пользователя, как AWT, Swing, SWT/JFace и JavaFX.

    1 ... 27 28 29 30 31 32 33 34 35 ... 59
    Перейти на страницу:
    с EXE установщиком приложения, который установит на компьютер настольное автономное приложение с EXE-файлом и JavaFX средой выполнения.

    Также можно сгенерировать MSI установщик вместо EXE установщика.

    Для этого нужно скачать и установить инструмент WiX и также добавить его в системную переменную Path.

    Для создания автономного приложения В IntelliJ IDEA в свойствах проекта нужно добавить артефакты JavaFX приложения.

    И во вкладке JavaFX указать класс приложения, название и другие свойства, а также указать нативный пакет.

    После чего в меню Build выбрать Build Artifacts.

    В результате в папке проекта outartifacts будет создана папка bundles с установщиком.

    Компоненты графического интерфейса пользователя

    Компоненты графического интерфейса пользователя платформы JavaFX представлены такими пакетами JavaFX API как scene.control, scene.chart, scene.image, scene.layout, scene.media, scene.shape, scene. text, scene. web и stage.

    Все компоненты GUI-интерфейса являются объектами Node узлов графа сцены и характеризуются идентификатором, CSS-стилем, границами, визуальными эффектами, прозрачностью, трансформациями, обработчиками событий, состоянием, режимом наложения и участием в анимации.

    Кнопка Button создается с помощью конструктора, в котором можно указать надпись кнопки и значок.

    Надпись кнопки также можно установить методом setText.

    Методом setOnAction к кнопке присоединяется слушатель нажатия кнопки.

    Значок также можно установить для кнопки методом setGraphic.

    Методы setLayout узла определяют координаты перемещения узла для его компоновки.

    Метод setPrefSize устанавливает предпочтительные размеры компонента в компоновке.

    Метод setStyle устанавливает строковое представление стиля CSS, связанного с этим конкретным узлом.

    Платформа JavaFX тесно интегрирована с каскадными таблицами стилей CSS, обеспечивающими для узлов графа сцены их внешний вид.

    И об этом мы поговорим позже.

    Давайте рассмотрим некоторые другие интересные методы компонентов, унаследованные от родительских классов.

    Метод setBlendMode узла определяет режим наложения этого узла на сцену позади него.

    В данном случае результирующий фон кнопки получается на основе темных составляющих цветов фона кнопки и фона сцены.

    Этот метод работает немного по-другому для узла группы Group.

    Если этот узел является группой, тогда все узлы группы будут размещены во временном буфере, используя их собственные режимы наложения, а затем этот временный буфер будет скомпонован в сцену, используя режим наложения группы.

    Метод setClip указывает узел, который будет использоваться для определения формы обрезки для данного узла.

    Причем, определение узла-маски для узла нивелирует установку его режима наложения.

    В данном случае мы накладываем на кнопку маску в виде окружности.

    Метод setCursor определяет форму курсора мыши для этого узла и его подузлов.

    Метод setEffect определяет визуальные эффекты для узла.

    Об эффектах мы поговорим позже.

    В данном случае к кнопке применяется эффект тени.

    Метод setManaged определяет, будет ли компоновка этого узла управляться его родителем.

    При установке свойства managed со значением false не учитываются максимальные, минимальные и предпочтительные размеры кнопки.

    Если значение этого свойства false, вам нужно будет самостоятельно определить размер и положение узла.

    Сделать это можно методом resize.

    Элементы контроля наследуют от класса Region, который определяет такие свойства, как ширина и высота узла, которые устанавливаются родительским узлом во время компоновки.

    Если приложение хочет изменить размеры региона при компоновке, оно должно переопределить предпочтительный диапазон размеров, установив свойства минимальных, максимальных и предпочтительных ширины и высоты.

    Напрямую изменить ширину и высоту узла можно с помощью метода resize, который заставляет родительский узел во время компоновки установить ширину и высоту региона.

    Компоновка графа сцены автоматически запускается системой, как только приложение создает и отображает сцену.

    Граф сцены обнаруживает динамические изменения узлов, которые влияют на макет (например, изменение размера или содержимого), и вызывает метод requestLayout, который отмечает эту ветку графа как требующую перекомпоновки.

    После чего происходит перекомпоновка, включая все дочерние узлы.

    Граф сцены поддерживает как изменяемые, так и не изменяемые по размеру узлы.

    Метод isResizable узла возвращает, является ли данный узел изменяемым по размеру или нет.

    Элементы управления и компоновки изменяются по размеру, но формы, текстовые объекты и группы не изменяются по размеру

    Изменяемый по размеру узел поддерживает диапазон допустимых размеров – это минимальные, предпочтительные и максимальные размеры, позволяя своему родительскому узлу изменять его размер в пределах этого диапазона во время компоновки.

    Поэтому все узлы, которые расширяют Region или Control и устанавливаются как корневой узел, автоматически будут подгоняться под размеры сцены.

    Все узлы, которые расширяют группу, не будут подгоняться под размеры сцены.

    Если вы не хотите, чтобы приложение изменялось в соответствии с размером сцены, добавьте группу в качестве корневого узла.

    Что касается минимальных, предпочтительных и максимальных размеров узла, какие размеры берутся за основу, зависит от родительского узла.

    Например, группа использует предпочтительный размер дочернего узла, а панель компоновки StackPane использует максимальные размеры дочернего узла, которые для некоторых узлов по умолчанию равны предпочтительным размерам.

    Та же панель компоновки StackPane не обращает внимание на минимальные размеры, а панель компоновки HBox соблюдает их.

    Если явно не устанавливать минимальные, предпочтительные и максимальные размеры, тогда узел сам вычисляет эти размеры на основе своего содержимого, и эти размеры его родитель будет использовать для изменения размера узла во время компоновки.

    Теперь, узел имеет свойство layoutBounds или границы – это прямоугольные границы, которые используются для вычислений компоновки для этого узла.

    Компоновочные границы layoutBounds определяются в локальной системе координат узла и могут отличаться от визуальных границ узла и вычисляются по-разному в зависимости от типа узла.

    Если тип узла имеет изменяемые размеры, тогда границы layoutBounds всегда совпадают с фактической шириной и высотой узла.

    Если узла имеет не изменяемые размеры, тогда границы layoutBounds вычисляются на основе геометрических свойств узла.

    Компоновочные границы layoutBounds соответствуют геометрическим границам компонента без учета эффектов, масок, трансформаций, но с учетом установленных размеров.

    Далее узел имеет свойство boundsInLocal – это границы узла, которые также определяются в локальной системе координат узла, однако включают в себя контур, эффекты и маски, но не учитывают трансформации.

    И наконец, узел имеет свойство boundsInParent – это границы узла относительно родительского узла, которые определяются в системе координат родительского узла и учитывают эффекты, маски и трансформации.

    Метод setFocusTraversable со значением true определяет, что фокус можно перемещать с помощью стрелок клавиатуры и клавиши Tab.

    Надо заметить, что при наведении фокуса на кнопку свойство focused принимает значение true.

    При нажатии кнопки с помощью клавиши Enter клавиатуры свойство hover остается со значением false, а при нажатии кнопки мышкой свойство hover принимает значение true.

    При нажатии кнопки с помощью мышки значение свойства pressed остается false, а значение свойства armed становится true, так как кнопка активируется не нажатием мышки, а нажатием и освобождением мышки.

    При установке свойства mouseTransparent со значением true кнопка активируется только с помощью клавиатуры.

    Метод setOpacity устанавливает прозрачность узла.

    Присоединение эффекта к узлу может нивелировать установку прозрачности узла. В данном случае это происходит при установке тени для кнопки.

    Методы setRotate, setLayout, setScale, setTranslate определяют трансформации узла.

    И о трансформациях мы тоже поговорим позже.

    Метод setTooltip добавляет всплывающую подсказку к элементу контроля.

    Метод setAlignment указывает, как текст и графика в кнопке должны быть выровнены, когда есть пустое

    1 ... 27 28 29 30 31 32 33 34 35 ... 59
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Людмила Хофман Людмила Хофман10 июнь 22:13 У меня перевернулся мир после прочтения ваших книг! Так приятно и чисто на душе, ведь по сути неважно кто с кем , а только любовь... Долгая игра - Рейчел Рид
    2. Анна Анна08 июнь 11:28 Спасибо за новую историю жизни и любви на сайте,прочитала с удовольствием .... Давай поженимся - Юлия Резник
    3. Елена Елена08 июнь 11:13 Прочла несколько романов этого, без сомнения, талантливого автора. Впечатление прекрасное, но хотелось бы когда-нибудь прочесть... Предатель. Ты врал мне годами - Арина Арская
    Все комметарии
    Новинки бесплатной онлайн библиотеки